home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / nio / DirectLongBufferS.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  3.3 KB  |  196 lines

  1. package java.nio;
  2.  
  3. import sun.misc.Cleaner;
  4. import sun.misc.Unsafe;
  5. import sun.nio.ch.DirectBuffer;
  6.  
  7. class DirectLongBufferS extends LongBuffer implements DirectBuffer {
  8.    protected static final Unsafe unsafe = Bits.unsafe();
  9.    protected static final boolean unaligned = Bits.unaligned();
  10.    protected Object viewedBuffer = null;
  11.  
  12.    public Object viewedBuffer() {
  13.       return this.viewedBuffer;
  14.    }
  15.  
  16.    public Cleaner cleaner() {
  17.       return null;
  18.    }
  19.  
  20.    DirectLongBufferS(DirectBuffer var1, int var2, int var3, int var4, int var5, int var6) {
  21.       super(var2, var3, var4, var5);
  22.       this.address = var1.address() + (long)var6;
  23.       this.viewedBuffer = var1;
  24.    }
  25.  
  26.    public LongBuffer slice() {
  27.       int var1 = this.position();
  28.       int var2 = this.limit();
  29.  
  30.       assert var1 <= var2;
  31.  
  32.       int var3 = var1 <= var2 ? var2 - var1 : 0;
  33.       int var4 = var1 << 3;
  34.  
  35.       assert var4 >= 0;
  36.  
  37.       return new DirectLongBufferS(this, -1, 0, var3, var3, var4);
  38.    }
  39.  
  40.    public LongBuffer duplicate() {
  41.       return new DirectLongBufferS(this, this.markValue(), this.position(), this.limit(), this.capacity(), 0);
  42.    }
  43.  
  44.    public LongBuffer asReadOnlyBuffer() {
  45.       return new DirectLongBufferRS(this, this.markValue(), this.position(), this.limit(), this.capacity(), 0);
  46.    }
  47.  
  48.    public long address() {
  49.       return this.address;
  50.    }
  51.  
  52.    // $FF: renamed from: ix (int) long
  53.    private long method_0(int var1) {
  54.       return this.address + (long)(var1 << 3);
  55.    }
  56.  
  57.    public long get() {
  58.       return Bits.swap(unsafe.getLong(this.method_0(this.nextGetIndex())));
  59.    }
  60.  
  61.    public long get(int var1) {
  62.       return Bits.swap(unsafe.getLong(this.method_0(this.checkIndex(var1))));
  63.    }
  64.  
  65.    public LongBuffer get(long[] var1, int var2, int var3) {
  66.       if (var3 << 3 > 6) {
  67.          checkBounds(var2, var3, var1.length);
  68.          int var4 = this.position();
  69.          int var5 = this.limit();
  70.  
  71.          assert var4 <= var5;
  72.  
  73.          int var6 = var4 <= var5 ? var5 - var4 : 0;
  74.          if (var3 > var6) {
  75.             throw new BufferUnderflowException();
  76.          }
  77.  
  78.          if (this.order() != ByteOrder.nativeOrder()) {
  79.             Bits.copyToLongArray(this.method_0(var4), var1, (long)(var2 << 3), (long)(var3 << 3));
  80.          } else {
  81.             Bits.copyToByteArray(this.method_0(var4), var1, (long)(var2 << 3), (long)(var3 << 3));
  82.          }
  83.  
  84.          this.position(var4 + var3);
  85.       } else {
  86.          super.get(var1, var2, var3);
  87.       }
  88.  
  89.       return this;
  90.    }
  91.  
  92.    public LongBuffer put(long var1) {
  93.       unsafe.putLong(this.method_0(this.nextPutIndex()), Bits.swap(var1));
  94.       return this;
  95.    }
  96.  
  97.    public LongBuffer put(int var1, long var2) {
  98.       unsafe.putLong(this.method_0(this.checkIndex(var1)), Bits.swap(var2));
  99.       return this;
  100.    }
  101.  
  102.    public LongBuffer put(LongBuffer var1) {
  103.       if (var1 instanceof DirectLongBufferS) {
  104.          if (var1 == this) {
  105.             throw new IllegalArgumentException();
  106.          }
  107.  
  108.          DirectLongBufferS var2 = (DirectLongBufferS)var1;
  109.          int var3 = var2.position();
  110.          int var4 = var2.limit();
  111.  
  112.          assert var3 <= var4;
  113.  
  114.          int var5 = var3 <= var4 ? var4 - var3 : 0;
  115.          int var6 = this.position();
  116.          int var7 = this.limit();
  117.  
  118.          assert var6 <= var7;
  119.  
  120.          int var8 = var6 <= var7 ? var7 - var6 : 0;
  121.          if (var5 > var8) {
  122.             throw new BufferOverflowException();
  123.          }
  124.  
  125.          unsafe.copyMemory(var2.method_0(var3), this.method_0(var6), (long)(var5 << 3));
  126.          var2.position(var3 + var5);
  127.          this.position(var6 + var5);
  128.       } else if (var1.hb != null) {
  129.          int var9 = var1.position();
  130.          int var10 = var1.limit();
  131.  
  132.          assert var9 <= var10;
  133.  
  134.          int var11 = var9 <= var10 ? var10 - var9 : 0;
  135.          this.put(var1.hb, var1.offset + var9, var11);
  136.          var1.position(var9 + var11);
  137.       } else {
  138.          super.put(var1);
  139.       }
  140.  
  141.       return this;
  142.    }
  143.  
  144.    public LongBuffer put(long[] var1, int var2, int var3) {
  145.       if (var3 << 3 > 6) {
  146.          checkBounds(var2, var3, var1.length);
  147.          int var4 = this.position();
  148.          int var5 = this.limit();
  149.  
  150.          assert var4 <= var5;
  151.  
  152.          int var6 = var4 <= var5 ? var5 - var4 : 0;
  153.          if (var3 > var6) {
  154.             throw new BufferOverflowException();
  155.          }
  156.  
  157.          if (this.order() != ByteOrder.nativeOrder()) {
  158.             Bits.copyFromLongArray(var1, (long)(var2 << 3), this.method_0(var4), (long)(var3 << 3));
  159.          } else {
  160.             Bits.copyFromByteArray(var1, (long)(var2 << 3), this.method_0(var4), (long)(var3 << 3));
  161.          }
  162.  
  163.          this.position(var4 + var3);
  164.       } else {
  165.          super.put(var1, var2, var3);
  166.       }
  167.  
  168.       return this;
  169.    }
  170.  
  171.    public LongBuffer compact() {
  172.       int var1 = this.position();
  173.       int var2 = this.limit();
  174.  
  175.       assert var1 <= var2;
  176.  
  177.       int var3 = var1 <= var2 ? var2 - var1 : 0;
  178.       unsafe.copyMemory(this.method_0(var1), this.method_0(0), (long)(var3 << 3));
  179.       this.position(var3);
  180.       this.limit(this.capacity());
  181.       return this;
  182.    }
  183.  
  184.    public boolean isDirect() {
  185.       return true;
  186.    }
  187.  
  188.    public boolean isReadOnly() {
  189.       return false;
  190.    }
  191.  
  192.    public ByteOrder order() {
  193.       return ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN ? ByteOrder.LITTLE_ENDIAN : ByteOrder.BIG_ENDIAN;
  194.    }
  195. }
  196.